(function(){
    /*时间轨迹模块*/
    function TrackMode(){}
    //TrackMode  时间轨迹原型链构造方法
    TrackMode.prototype={
        //初始化状态---
        init:function(options){
            var queryBtn=options.queryBtn;
            var timePut=options.timePut;
            this.account=options.sendData.account;//账号
            this.token=options.sendData.token;//token
            this.imeiId=options.sendData.imeiId;//imeiId
            this.lineDraw=options.lineDraw;//路线绘制函数
            this.mapInit();//地图初始化调用
            this.timeEvent(queryBtn,timePut);
        },
        /*
        *  时间区分：@param  startTime  开始时间
        *          @param  endTime    结束时间
        *          @param  handle     回调函数  时间输入正确 进行处理
        * */
        timeDis:function(startTime,endTime,handle){
            var dis=endTime-startTime;//根据时间差进行判断
            if(dis>0){
                this.limitDay(dis,startTime,endTime,handle);
            }else if(dis==0){
                baseAll.pubilcModal("开始时间与结束时间不能相同");
            }else{
                baseAll.pubilcModal("开始时间不能大于结束时间");
            }
        },
        /* @param dis  时间差*/
        limitDay:function(dis,startTime,endTime,handle){
            if(dis>24*3600*1000){
                baseAll.pubilcModal("查询时间不能超过一天");
            }else{
                var sendData=this.sendAjaxData(startTime,endTime);
                handle&&handle(sendData,this.lineDraw);//执行回调操作 AJAX交互
            }
        },
        /*
            @param  queryBtn   查询按钮
            @param  timePut    表单文本框
        *   时间判断事件
        * */
        timeEvent:function(queryBtn,timePut){
            var self=this;
            //查询事件调用
            $(queryBtn).on("touchstart",function(){
                var flag=self.isEmptyPut(timePut);
                if(flag){
                     var startTime=$("#startTime").val();
                     var endTime=$("#endTime").val();

                     if(baseAll.isMobileDevice()=='ios'){
                         startTime=startTime.replace(/-/g,'/');
                         endTime=endTime.replace(/-/g,'/');
                     }
                     var start=Date.parse(startTime);
                     var end=Date.parse(endTime);
                     self.timeDis(start,end,self.requsetRoute);
                }
            });
            //时间输入框焦点事件  样式回复为初始状态
            $(timePut).on("focus",function(){
                var index=$(this).parent().index();
                $(this).attr("placeholder","");
                $(this).parent().removeClass("errorMsg");
                if(index==1){
                    self.successive();//判断先后选择
                }
            });
        },
        /*
        *  判断文本框是否为空
        *  @param  timePut    表单文本框
        * */
        isEmptyPut:function(timePut) {
            var flag=true;
            $(timePut).each(function(){
                var emptyText=$(this).data("empty");
                if($(this).val().length===0){
                    $(this).parent().addClass("errorMsg");
                    $(this).attr("placeholder",emptyText);
                    flag=false;
                    return;
                }
            });
            return flag;
        },
        /*
        * 数据的发送----sendAjaxData
        * */
        sendAjaxData:function(startTime,endTime){
            var self=this;
            /*
               *   传输的数据：sendData
               *   @param  account  用户账号
               *   @param  imeiId   编号
               *   @param  token      token
               *   @param  startTime  开始时间
               *   @param  endTime    结束时间
               * */
            var sendData={
                startTime:baseAll.dateToString(startTime),
                endTime:baseAll.dateToString(endTime),
                account:self.account,
                imeiId:self.imeiId,
                token:self.token
            }
            return sendData;
        },
        /*
        *   获取绑路路线 描绘点
        * */
        requsetRoute:function(getDatas,callback){
            //通过用户账号获取Ip地址
            baseAll.getIpByAccount(getDatas.account,function(contextPath){
                baseAll.addLoading();
                $.ajax({
                    type:"post",
                    url:contextPath+"/s/gprs/path/"+getDatas.imeiId,
                    async:true,
                    crossDomain:true,
                    dataType:"json",
                    timeout:baseAll.timeout,
                    data:{
                        mapType:"baidu",
                        timeBegin:getDatas.startTime,
                        timeEnd:getDatas.endTime,
                        token:getDatas.token
                    },
                    success:function(data){
                        if(data.opStatus==0){
                            var dataJSON=data.data;
                            //如果查询到没有轨迹
                            if(dataJSON.length==0){
                                baseAll.pubilcModal("该段时间没有行程轨迹");
                                baseAll.closeLoading();
                                return;
                            }else{
                                callback&&callback(dataJSON);
                            }
                        }else{
                            baseAll.pubilcModal("错误提醒:"+data.msgDesc);
                            baseAll.closeLoading();
                        }
                    },
                    error:function(){
                        baseAll.pubilcModal("网络连接失败");
                        baseAll.closeLoading();
                    }
                })
            });
        },
        /*时间选择先后   startTime   endTime* */
        successive:function(){
            var secondPut=$("#startTime").val();
            if(secondPut.length==0){
                baseAll.pubilcModal("请先选择起始时间");
                return;
            }
        },
        /*默认位置设置  最后一个点*/
        mapInit:function(){
            var self=this;
            baseAll.getIpByAccount(self.account,function(contextPath){
                baseAll.addLoading();
                $.ajax({
                    type:"get",
                    url:contextPath+"/s/gprs/marker/"+self.imeiId,
                    async:true,
                    crossDomain:true,
                    dataType:"json",
                    timeout:baseAll.timeout,
                    data:{
                        mapType:"baidu",
                        token:self.token
                    },
                    success:function(data){
                        if(data.opStatus==0){
                            self.mapInitLocation(data.data)//默认位置调用
                        }else{
                            baseAll.pubilcModal("错误提醒:"+data.msgDesc);
                            baseAll.closeLoading();
                        }
                    },
                    error:function(){
                        baseAll.pubilcModal("地图初始化加载失败");
                        baseAll.closeLoading();
                    }
                })
            });
        },
        /*
            mapInit  地图的默认位置
            @param   地图对象
        * */
        mapInitLocation:function(mapObj){
            if(mapObj==null||mapObj==''){
                baseAll.pubilcModal("无法检测到当前位置");
                baseAll.closeLoading();
                return;
            }
            var map = new BMap.Map("trackMap");
            var point = new BMap.Point(mapObj.lng,mapObj.lat);
            map.centerAndZoom(point, 15);
            map.enableScrollWheelZoom(true);
            map.addEventListener("tilesloaded",function(){
                baseAll.closeLoading();
            });
        }
    }
    window.TrackMode=new TrackMode();
})();